/**
 *  当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的。
 *  
 * 1.使用 interface 关键字来声明接口
 * 2.接口名称(比如,此处的IPerson),可以是任意合法的变量名称
 * 3.声明接口后,直接使用 接口名称 作为变量的类型
 * 4.因为每一行只有一个属性类型,因此,属性类型没有;
 * 
 * 接口和类型别名的区别
 * 相同点: 都可以给对象指定类型
 * 
 * 不同点: 
 *      1.接口,只能给对象指定类型
 *      2.类型别名,不仅可以为对象指定类型,还可以为任意类型指定别名
 * 
 * 
 */


interface IPerson {
    name: string
    age: number
    sayHi(): void
}

let person: IPerson = {
    name: 'jack',
    age: 19,
    sayHi () {
        console.log('hello')
    }
}

type IPerson2 = {
    name: string
    age: number
    sayHi(): void
}









